package com.foryou.wechat.service;

import com.foryou.wechat.model.dto.UserDTO;
import com.foryou.wechat.utils.Response;

/**
 * <h1>用户模块接口汇总</h1>
 * Created by Lee.
 */
public interface UserService {

    /**
     * <h2>授权完之后得到用户信息</h2>
     * @param openId
     * @param nickname
     * @param avatarUrl
     * @param gender
     * @param sessionKey
     * @return
     */
    Response userLogin(String openId,String nickname,String avatarUrl,String gender,String sessionKey);

    /**
     * <h2>修改用户信息</h2>
     * @param userDTO
     * @return
     */
    int updateUser(UserDTO userDTO);

    /**
     * <h2>修改用户头像</h2>
     * @param userId
     * @param url
     * @return
     */
    boolean updateUserAvatar(Long userId,String url);

    /**
     * <h2>根据用户ID查询用户首页信息</h2>
     * @param userId
     * @return
     */
    Response getUserIndex(Long userId);

    /**
     * <h2>获取用户关注信息</h2>
     * @param start
     * @param userId
     * @return
     */
    Response getFollowList(int start,Long userId);

    /**
     * <h2>获取用户粉丝信息</h2>
     * @param start
     * @param userId
     * @return
     */
    Response getFansList(int start,Long userId);

    /**
     * <h2>根据用户ID得到作品相册详情</h2>
     * @param start
     * @param userId
     * @return
     */
    Response getWorksImageList(int start,Long userId);

    /**
     * <h2>修改用户背景图片</h2>
     * @param userId
     * @param url
     * @return
     */
    Response updateUserBack(Long userId, String url);

    /**
     * <h2>得到用户信息</h2>
     * @param userId
     * @return
     */
    Response getUserInfo(Long userId);

    /**
     * <h2>检查用户是否资料齐全</h2>
     * @param userId
     * @return
     */
    boolean checkUserInfo(Long userId);
}
